/**
 * 
 */
package com.airlines.base.service.dict;

import java.util.List;

import com.airlines.base.entity.dict.Dictionary;
import com.airlines.base.entity.dict.DictionaryView;
import com.airlines.base.service.base.BaseService;

/**
 * @author xxxx
 * @date 2017年3月6日
 * @company xxxx Airlines
 * @description 字典服务
 */
public interface DictionaryService  extends BaseService<Dictionary,Integer>{

	/**
	 * 根据字典code 获取所有下拉框字典数据
	 * @param dictionaryCode
	 * @return
	 */
	List<DictionaryView> listDictionaryView(String dictionaryCode);
	
	/**
	 * 根据字典code，获取默认值
	 * @param dictionaryCode
	 * @return
	 */
	String getDefaultVal(String dictionaryCode);
	
	/**
	 * 根据字典Code，获取下拉框用的select2数据
	 * @param dictionaryCode
	 * @return
	 */
	String getSelect2Json(String dictionaryCode);
	
	/**
	 * 重写按主键删除的方法，删除数据的同时删除 明细字典数据
	 */
	int  deleteByPrimaryKey(Integer dictionaryId);
	
	
	
	/**
	 * 根据字典编码，返回可以所有的字段数据，包括已经禁用的，主要用于前台明细表展示将业务表中的数据value，转换为下拉框显示值
	 * @param dictionaryCode
	 * @return
	 */
	List<DictionaryView> listDictionViewAll(String dictionaryCode,String language);
	
	
	/**
	 * 将List对象中的字典相关的值，转换为对应的显示值属性，需传入语言
	 * @param list
	 * @param valueName
	 * @param textName
	 * @param dictionaryCode
	 * @param language
	 * @return
	 */
	<T> List<T> convertDictValueToText(List<T> list,String valueName,String textName,String dictionaryCode,String language);
}
